if(!jsx3.lang.Class.forName("ux.cdb.admin.approvePkg.provPkgWizard.AddProvReviewComment")) {
	jsx3.lang.Class.defineClass("ux.cdb.admin.approvePkg.provPkgWizard.AddProvReviewComment",
			ux.megatron.gui.WizardPanel,
			null,
			function (block) {
				/**
				 * instance initializer
				 * @param strName {String} unique name distinguishing this object from all other JSX GUI objects in the JSX application
				 * @param vntLeft {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
				 * @param vntTop {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
				 * @param vntWidth {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
				 * @param vntHeight {int|String} either a number (i.e, 12, 30, etc) or a number and a unit value (i.e., "25%", "36pt", etc); if a number is passed, pixels will be the assumed unit when painted to screen
				 * @param strHTML {String} Text/HTML markup to place in the jsx3.gui.Block instance
				 */
				block.prototype.init = function(strName, vntLeft, vntTop, vntWidth, vntHeight, strHTML) {
					//call constructor for super class (the super expects the name of the object and the function that it is an instance of)
					this.jsxsuper(strName, vntLeft, vntTop, vntWidth, vntHeight, strHTML);
				};

				block.prototype.initialize = function(msg) {
					this.wizard = this.getAncestorOfType("ux.megatron.gui.SteppedWizard");
				}

				block.prototype.onNext = function(objWIZARD, objBUTTON, objEVENT, strCURRENTPANEL) {
					return null; // return "NONE" to not next panels
				}

				block.prototype.onPrev = function(objWIZARD, objBUTTON, objEVENT, strCURRENTPANEL) {
					return null; // return "NONE" to not advance panels
				}

				block.prototype.onSave = function(objWIZARD, objBUTTON, objEVENT, strCURRENTPANEL) {
					var me = this;
					var provider =  this.get("reviewContent");
					if(!provider.doValidate()){
						var appConclusionInfoObj = provider.getDataAsObject();
						this.obj = appConclusionInfoObj;
						appConclusionInfoObj.partyId = "";
						appConclusionInfoObj.approveConclusionTypeCode = "7";
						appConclusionInfoObj.internalOrgId = "1";
						appConclusionInfoObj.virtualApproveObjectId = 1;
						appConclusionInfoObj.approveProcessInfoId = 0;
						appConclusionInfoObj.sysUserId = 1;
						appConclusionInfoObj.sysRoleId = 1;

						ux.megatron.util.Dwr.callDwr("RetailStudentLoanBatchExamUCC",
								"saveOpinion",
								[appConclusionInfoObj],
								me,me.callBackSaveOpinion,
								"RetailStudentLoanBatchExamUCC");
						return null; // return "NONE" to not last status
					}else{
						return "NONE";
					}
				}
				block.prototype.callBackSaveOpinion = function(dwrObject){
					this.wizard.get("buttonSave").disable();
					this.wizard.get("buttonSubmit").enable();
				}

				block.prototype.onCancel = function(objWIZARD, objBUTTON, objEVENT, strCURRENTPANEL) {
					this.getAncestorOfType("ux.cdb.admin.approvePkg.provPkgWizard.Builder").onClose();
					return null; // return "NONE" to not advance panels
				}

				block.prototype.onCustomNav = function(objWIZARD, objBUTTON, objEVENT, strCURRENTPANEL) {
					return null; // return "NONE" to not advance panels
				}

				block.prototype.onSubmit = function(objWIZARD, objBUTTON, objEVENT, strCURRENTPANEL) {
					var me = this;
					//Desc : public Res submitOpinion(ApproveConclusionInfo ApproveConclusionInfo,String approvalProcessInfoId,String concentrateApprovalInfoId)
					ux.megatron.util.Dwr.callDwr("RetailStudentLoanBatchExamUCC",
							"submitOpinion",
							[this.obj,"",""],
							me,me.callBackSubmit,
							"RetailStudentLoanBatchExamUCC");
					this.getAncestorOfType("ux.cdb.admin.approvePkg.provPkgWizard.Builder").onClose();
					return null; // return "NONE" to not finish wizard
				}
				block.prototype.callBackSubmit = function(dwrObject){
				}

				block.prototype.onBeforeShow = function(objWIZARD, objBUTTON, objEVENT, strLASTPANEL) {
					/*if(!this.getChild(0)) {
						var me = this;
						ux.megatron.Main.loadUIResourceAsync(me, "ux.cdb.admin","ux/cdb/admin/approvePkg/pkgWizard/step2/ui/addReviewContent.xml", me, me.initialize);
					}*/
					return null; // return "NONE" to not advance panels
				}

				block.prototype.onAfterHide = function(objWIZARD, objBUTTON, objEVENT, strNEXTPANEL) {
					return null; // return "NONE" to not advance panels
				}
			}
	);
}
